home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 3
/
Cream of the Crop 3.iso
/
os2
/
tshell.zip
/
TSHELL.rme
< prev
Wrap
Text File
|
1993-12-13
|
21KB
|
610 lines
TSHELL MONTE COPELAND
REVISION HISTORY
--------------------------------------------------------------------
13DEC93: change name to TSHELL
16NOV93: start group is programmable with rexx
18AUG93: first release on OS2TOOLS.
INTRODUCTION
--------------------------------------------------------------------
TSHELL is a text-based, protected-mode shell for OS/2 2.x.
Remember OS/2 1.0? TSHELL makes OS/2 2.X look something like OS/2
1.0.
OS/2 1.0 did not have a graphical user interface. When it booted
up, you could only start and switch "full-screen" sessions.
With TSHELL you can start and switch sessions, too. Every TSHELL
session is a full-screen session. These can be OS/2, DOS, or
WINOS2 sessions depending on the machine configuration. As
always, you still use alt-esc to switch around sessions and
control-esc to show a list of sessions.
Like OS/2 1.0, there is no Presentation Manager. Thus, OS/2 PM
applications will not work. There are other restrictions. See
below. TSHELL runs DOS and Windows programs if the machine is so
configured.
TSHELL may have applications in small, low resource systems, or
even embedded systems. It can operate in 4MB with swapping turned
off.
Send comments to Monte Copeland. MONTE at BCRVMPC1,
monte@vnet.ibm.com.
INSTALLATION
--------------------------------------------------------------------
1. Make a copy of your CONFIG.SYS. You will need it to uninstall TSHELL.
2. Copy TSHELL.EXE into the root directory of the bootup drive.
3. Edit CONFIG.SYS and change the PROTSHELL setting to
PROTSHELL=\TSHELL.EXE
There is more you can do to CONFIG.SYS to save memory. See below.
4. (OPTIONAL) Copy PGMSHELL.EXE into your PATH.
RESTRICTIONS AND KNOWN BUGS
--------------------------------------------------------------------
TSHELL does not spool. If you accidentally print or hit print-screen, wait
for the parallel port to timeout. See SetParallelTimeout() function below.
TSHELL will not run programs that require Presentation Manager. TSHELL does
not initialize PM. It can only start CMD.EXE and COMMAND.COM in full screen
sessions.
Rexx works (if present) but RexxUtils does not.
The CMD.EXE command START /DOS does not work right. Get StartDos.
IBM LAN Requestor does not work, but a fix may be forthcoming.
When TSHELL does have a shutdown option on the menu, end all running programs
first, then it will work.
When TSHELL does not have a shutdown option on the menu, press
Control-Alt-Delete and wait until after the hardware cursor reappears but
before the hard disk light comes on, then turn off the computer. This is a
clean shutdown. C-A-D will always perform a clean shutdown and reboot.
Pressing Ctrl-Esc from WinOS2 on Dell S3 SVGA causes video sync problems.
Keep pressing Alt-esc to recover.
The running list gets corrupted on ThinkPads if you close and reopen them.
At init time, OS/2 session manager will DosLoadModule PMWIN, PMGRE, and other
PM DLLs if they are present. They are not initialized, but their code takes
up shared pages in memory. If this is a concern, remove these DLLs from the
LIBPATH. Session manager, TSHELL, and CMD.EXE will initialize OK without
them.
If running MEMMAN=NOSWAP, you must ensure you have enough memory. Problems
can occur when nearing memory capacity.
Don't run TSHELL from a command line on a PM system. It will crash it.
TSHELL is meant for the PROTSHELL statement in CONFIG.SYS.
To save memory you may specify DEVINFO=SCR,EGA,C:\OS2\VTBL850.DCP (see below)
in CONFIG.SYS, but it causes problems when starting DOS sessions with settings
using PGMSHELL.EXE. Still investigating.
PGMSHELL.EXE: PROGRAMMING THE TSHELL START LIST
--------------------------------------------------------------------
Usage: PGMSHELL <rexx cmd file>
TSHELL's list of startable programs can be modified by writing a script in
Rexx and invoking it via the utility PGMSHELL.EXE. PGMSHELL collects data
from Rexx and passes it to TSHELL.
PGMSHELL is optional. If you never use PGMSHELL, TSHELL will provide a list
of items to start. PGMSHELL requires Rexx.
Here is a sample Rexx program that modifies the TSHELL start list:
/* rexx program to modify TSHELL */
if 'PGMSHELL' <> address() then do
say 'Expected PGMSHELL environment.'
say 'Usage: PGMSHELL <cmd filename>'
return 2
end
/* TSHELL does not spool, so reduce parallel port timeout
from 120 to 5 seconds in case you accidentally hit print-screen
and there is no printer hooked up. */
rc = SetParallelTimeout( "LPT1", 5 )
/* title text for the start list */
rc = SetStartTitle( "Start Group" )
/* title text for the running list */
rc = SetRunningTitle( "Running Group" )
/* Add OS2 program; arguments: title, startup dir, parameters, exe */
rc = AddOS2Program( "CMD",,,"CMD.EXE" )
/* is configured for DOS? */
if QueryDOSCapable() then do
/* Add DOS program;
arguments: title, startup dir, parameters, settings stem */
drop settings
settings.0 = "DPMI_DOS_API=ENABLED"
settings.1 = "DPMI_MEMORY_LIMIT=8"
rc = AddDOSProgram( "DPMI DOS Session",,, "settings" )
/* Add another DOS program. Arguments are:
title, startup dir, parameters, settings stem */
drop settings
settings.0 = 'DOS_HIGH=1'
settings.1 = 'DOS_UMB=1'
settings.2 = 'VIDEO_MODE_RESTRICTION=CGA '
rc = AddDOSProgram( "Big DOS Session","","", "settings" )
/* Add winos2 */
rc = AddDOSProgram( "WinOS2","","/c winos2", "" )
end
/* add shutdown option. arguments: title, completion msg */
rc = AddShutdown( "Shutdown", "Shutdown Complete" )
return 0
These special functions are available to Rexx programs under the PGMSHELL
environment:
SetParallelTimeout( portname, timeout in decimal seconds )
Sets the parallel port timeout. Set the port timeout to zero if there
is no printer attached.
SetStartTitle( start group title )
Sets the title text above the list of startable programs.
SetRunningTitle( running group title )
Sets the title text above the list of running programs.
QueryDOSCapable()
Returns a Boolean indicating if the system is configured to emulate DOS.
AddOS2Program( title, startup dir, parameters, EXE )
Adds an OS/2, protected mode program to the start list.
AddDOSProgram( title, startup dir, command.com arguments, settings stem )
Adds a DOS mode program to the start list. ALL elements of the stem
variable are considered DOS settings. Therefore, drop the stem variable
before assigning DOS settings to it.
AddShutdown( shutdown title, shutdown complete message )
Adds the shutdown option to the start group.
--------------------------------------------------------------------------
LICENSE INFORMATION: PLEASE READ
----------------------------------------------------------------------------
You have accepted this program with the understanding that the IBM
Corporation makes no representations or warranties as to the suitability of
this program for your particular purpose, and to the extent you use or
implement this program in your own setting, you do so at your own risk. In no
event will IBM Corporation be liable for any damages, whether consequential,
incidental, or special, arising out of the use or inability to use the
program provided herewith. This program has restrictive terms and conditions
associated with its use and reproduction to which you must agree. DO NOT POST
MODIFIED VERSIONS OF THIS PROGRAM FOR PUBLIC ACCESS.
NOTES ABOUT PROTECT-ONLY OS2 2.1 BOOT FROM FLOPPY DISKETTE
--------------------------------------------------------------------------
My test machine is a M70 A16 with 4MB RAM.
TSHELL can operate a trimmed-down OS/2 2.1 in 4MB RAM with swapping turned
off and 1.5 MB free after having started one session with CMD.EXE.
I was able to get OS/2 to boot off one floppy by collapsing Diskette 1 onto
the Installation Diskette. The DIR, CONFIG.SYS, and ABIO.SYS are below.
The question of which BIO files to keep is answered with the help of
QCONFIG, which shows the model and revision levels of a PC. If in doubt,
install OS2 in the normal way and learn from how OS2 System Install did it.
The volume label in drive A is DISK 0.
The Volume Serial Number is 25F9:2015
Directory of A:\
OS2BOOT 1099 4-26-93 8:14p
SYSINSTX COM 39472 4-29-93 8:33p ;optional, like DOS sys command
OS2KRNL 734366 5-06-93 4:13p ;renamed from OS2KRNLI
EA DATA SF 6144 5-15-93 3:56a
SCREEN02 SYS 5832 5-03-93 8:12p
OS2LDR 28160 4-25-93 3:19p
DOSCALL1 DLL 90854 4-29-93 9:30p
CMD EXE 90624 4-29-93 9:41p
F80D01 BIO 5120 3-12-93 5:57p ;M70 A21 from QCONFIG
OS2LDR MSG 8516 4-22-93 11:31a
BVHVGA DLL 40892 4-25-93 4:04p
TSHELL EXE 9911 8-19-93 8:01a ;small character-based shell
TSHELL SYM 1956 8-19-93 8:01a
W060100 BIO 6656 3-12-93 5:57p
OS2CHAR DLL 56000 4-25-93 4:12p
IBM2ADSK ADD 10834 4-25-93 8:29p ;optional, drives hard file
W020101 BIO 4608 3-12-93 6:01p
W050101 BIO 3072 3-12-93 6:01p
W020100 BIO 3072 3-12-93 6:01p
OS2DUMP 2760 4-25-93 3:19p
W050100 BIO 2560 3-12-93 5:57p
000000 BIO 2560 3-12-93 5:57p
W0F0000 BIO 1536 3-12-93 5:57p
W050000 BIO 1536 3-12-93 5:57p
OS2VER 89 3-12-93 6:48p
ABIOS SYS 116 8-07-93 11:49a ;tweaked
SESMGR DLL 32806 4-25-93 4:18p
OS2DASD DMD 33236 4-22-93 3:39p ;req'd
COUNTRY SYS 25610 4-29-93 9:52p
KBD02 SYS 25941 4-22-93 5:39p
NPXEMLTR DLL 25280 4-22-93 6:03p
QUECALLS DLL 15250 4-29-93 9:27p
HARDERR EXE 14824 4-29-93 9:18p
IBM2FLPY ADD 13913 4-25-93 6:34p ;drives floppy
VTBL850 DCP 10478 4-22-93 4:33p
BVHINIT DLL 9443 4-25-93 4:04p
IBMINT13 I13 9684 4-25-93 8:30p ;not used
KEYBOARD DCP 5177 4-22-93 5:34p
CLOCK02 SYS 3710 4-22-93 5:00p
VIOCALLS DLL 1825 4-25-93 4:11p
NAMPIPES DLL 1024 4-25-93 4:31p
CONFIG SYS 625 8-19-93 9:41p
KBDCALLS DLL 858 4-22-93 3:32p
MOUCALLS DLL 1010 4-22-93 3:31p
MSG DLL 508 4-22-93 4:09p
NLS DLL 466 4-22-93 4:08p
ANSICALL DLL 438 4-22-93 2:49p
BKSCALLS DLL 401 4-22-93 2:50p
BMSCALLS DLL 398 4-22-93 2:51p
BVSCALLS DLL 454 4-22-93 2:54p
50 file(s) 1391704 bytes used
56832 bytes free
--- CONFIG.SYS ---
buffers=16
iopl=yes
memman=noswap,commit
protshell=tshell.exe
set os2_shell=cmd.exe
diskcache=64
protectonly=yes
libpath=.;\;\os2\dll;
pauseonerror=no
codepage=850
devinfo=kbd,us,keyboard.dcp
devinfo=scr,ega,vtbl850.dcp
rem device=\dos.sys
rem device=\mouse.sys
set path=\;\os2;\os2\system;\os2\install;A:;
set dpath=A:;\;\os2;\os2\system;\os2\install
set keys=on
rem basedev=print01.sys
rem basedev=ibm1flpy.add
rem basedev=ibm1s506.add
basedev=ibm2flpy.add ; drives floppy
basedev=ibm2adsk.add ; drives hard disk in M70 A16
rem basedev=ibm2m57.add
rem basedev=ibm2scsi.add
rem basedev=ibmint13.i13
basedev=os2dasd.dmd
REM device=\pcmcia.sys
--- ABIOS.SYS ---
000000.BIO
W0F0000.BIO
W050101.BIO
W050100.BIO
W050000.BIO
W060100.BIO
W020100.BIO
W020101.BIO
F80D01.BIO
NOTES ABOUT VDM-ENABLED OS2 2.1 BOOT FROM HARD DISK
---------------------------------------------------------------
As above, my test machine is a 4MB M70 A16 with 153 MB hard file.
The SYSINSTX.COM program is similar in nature to the DOS command SYS, which
prepares a hard file's boot record. The purpose of SYSINSTX is to tweak the
boot record and write the file OS2BOOT onto the hard file in such a place
that the boot record can find it.
To use: run FDISK and FORMAT from a floppy like the one above, then
SYSINSTX C:
Then copy OS2 files onto the hard file.
If you have problems, run through the first 4-5 diskettes of regular OS2
install. When asked to reboot, insert your booter floppy described above and
start tweaking. This is what I did, and I finally ended up with the files
shown below.
MEMORY NOTES: In a 4MB machine with MEMMAN=NOSWAP,COMMIT I found that OS2
with VDM support + TSHELL + one protect-mode session with CMD.EXE +
free-page counter program showed 306 4K pages free.
After starting one plain vanilla DOS session, no XMS, EMS, nor DPMI, the DOS
program MEM.EXE shows
655360 bytes total memory
654336 bytes available for DOS
617632 largest executable program size
and the protect-mode free page counter showed 135 pages free.
The free page count is slightly higher than reported when you allow for the
programs that help do the reporting. The free page counter is spawned from
CMD.EXE. CMD takes about 47 pages, and the free page counter takes about 10
pages.
There is only enough memory in 4MB noswap to start one DOS session. It seems
to take about 173 pages to start a DOS session.
For a 6MB system, add 512 pages (+2MB) to the free page numbers given above
for 4MB. 6MB can start a maximum of 4 DOS sessions with 127 free pages left
over.
The volume label in drive C is OS2.
The Volume Serial Number is A24D:3C14
Directory of C:\
OS2BOOT 1099 8-19-93 2:58a
SYSINSTX COM 39472 4-29-93 8:33p ; needed for install to harddisk
TSHELL EXE 9911 8-20-93 10:50a ; tiny character-mode shell
IBM2ADSK ADD 10834 4-25-93 8:29p ; hard disk driver
CONFIG IN 1539 8-19-93 3:01a
TMP <DIR> 8-19-93 9:59p
BIN <DIR> 8-19-93 10:26p
OS2VER 89 3-12-93 6:48p
OS2DASD DMD 33236 4-22-93 3:39p ; required disk driver all media
IBM2FLPY ADD 13913 4-25-93 6:34p ; floppy disk driver
VTBL850 DCP 10478 4-22-93 4:33p ; video stuff
OS2KRNL 734366 5-06-93 4:13p ; retail kernel, debug kernel=1MB
CONFIG SYS 669 8-20-93 12:58a
OS2 <DIR> 8-19-93 2:22a
14 file(s) 855606 bytes used
Directory of C:\TMP
. <DIR> 8-19-93 9:59p
.. <DIR> 8-19-93 9:59p
TSHELL EXE 9911 8-20-93 10:50a ; shell again
SPARSE EXE 38792 8-07-93 1:19p ; mem test pgm
VDM CFG 6576 8-19-93 11:12p ; my notes
6MB CFG 6930 8-20-93 12:11a ; my notes
4MB CFG 2 8-20-93 1:03a ; my notes
7 file(s) 62211 bytes used
Directory of C:\BIN ; my editor
. <DIR> 8-19-93 10:26p
.. <DIR> 8-19-93 10:26p
E EX 39317 8-07-93 9:56a ; my editor
E EXE 152656 4-23-90 6:53p ; my editor -- not a pm editor
DIRS CMD 18 8-19-93 10:43p
5 file(s) 191991 bytes used
Directory of C:\OS2
. <DIR> 8-19-93 2:22a
.. <DIR> 8-19-93 2:22a
DLL <DIR> 8-19-93 2:22a
SYSTEM <DIR> 8-19-93 2:50a
SCREEN02 SYS 5832 5-03-93 8:12p
MDOS <DIR> 8-19-93 2:50a
CHKDSK COM 68656 5-01-93 3:24p ; optional
FORMAT COM 66832 5-01-93 3:35p ; optional
KEYBOARD DCP 137408 4-26-93 9:38p
VDISK SYS 2904 4-30-93 4:42p ; optional
VIOTBL DCP 124708 4-22-93 4:34p
ABIOS SYS 127 8-19-93 2:58a
000000 BIO 2560 3-12-93 5:57p
W0F0000 BIO 1536 3-12-93 5:57p
W050101 BIO 3072 3-12-93 6:01p
W050100 BIO 2560 3-12-93 5:57p
W050000 BIO 1536 3-12-93 5:57p
W060100 BIO 6656 3-12-93 5:57p
W020100 BIO 3072 3-12-93 6:01p
W020101 BIO 4608 3-12-93 6:01p
F80D01 BIO 5120 3-12-93 5:57p
F80D00 BIO 5120 3-12-93 5:57p
CLOCK02 SYS 3710 4-22-93 5:00p
CMD EXE 90624 4-29-93 9:41p
KBD02 SYS 25941 4-22-93 5:39p
PRINT02 SYS 8166 4-29-93 10:01p
FIND EXE 30665 5-01-93 3:33p ; optional
MODE COM 61077 5-01-93 3:38p ; optional
ATTRIB EXE 36765 4-29-93 9:33p ; optional
VTBL850 DCP 10478 4-22-93 4:33p ; found on Install disk 1
30 file(s) 709733 bytes used
Directory of C:\OS2\DLL
. <DIR> 8-19-93 2:22a
.. <DIR> 8-19-93 2:22a
DOSCALL1 DLL 90854 5-01-93 3:18p
OS2CHAR DLL 56000 4-25-93 4:12p
SESMGR DLL 32806 4-25-93 4:18p
NPXEMLTR DLL 25280 4-22-93 6:03p
QUECALLS DLL 15250 5-01-93 3:17p
BVHINIT DLL 9443 4-25-93 4:04p
VIOCALLS DLL 1825 4-25-93 4:11p
NAMPIPES DLL 1024 4-25-93 4:31p
KBDCALLS DLL 858 4-22-93 3:32p
MOUCALLS DLL 1010 4-22-93 3:31p
MSG DLL 508 4-22-93 4:09p
NLS DLL 466 4-22-93 4:08p
ANSICALL DLL 438 4-22-93 2:49p
BKSCALLS DLL 401 4-22-93 2:50p
BMSCALLS DLL 398 4-22-93 2:51p
BVSCALLS DLL 454 4-22-93 2:54p
BVHVGA DLL 40892 4-25-93 4:04p
REXX DLL 248368 3-12-93 5:57p ; rexx optional
REXXAPI DLL 33367 3-12-93 5:57p ; optional
REXXINIT DLL 1468 3-12-93 5:57p ; optional
REXXUTIL DLL 29385 5-08-93 9:33p ; optional
23 file(s) 590495 bytes used
Directory of C:\OS2\SYSTEM
. <DIR> 8-19-93 2:50a
.. <DIR> 8-19-93 2:50a
OSO001H MSG 238766 4-22-93 11:18a ; contains English messages
OSO001 MSG 171523 4-22-93 11:17a ; contains English messages
COUNTRY SYS 25610 5-01-93 3:38p
HARDERR EXE 14824 5-01-93 3:11p
6 file(s) 450723 bytes used
Directory of C:\OS2\MDOS
. <DIR> 8-19-93 2:50a
.. <DIR> 8-19-93 2:50a
VDMA SYS 12777 4-22-93 6:46p ; req'd by kernel
MEM EXE 39834 4-22-93 5:44p ; optional
COMMAND COM 52686 5-01-93 3:26p ; req'd by kernel
DOSKRNL 28849 4-22-93 2:35p ; req'd by kernel
VKBD SYS 22247 4-22-93 6:54p ; req'd by kernel
VTIMER SYS 9168 4-22-93 6:56p ; req'd by kernel
VPIC SYS 8678 5-04-93 1:02p ; req'd by kernel
VDSK SYS 8896 4-22-93 6:46p ; req'd by kernel
VBIOS SYS 7584 4-22-93 6:36p ; req'd by kernel
VLPT SYS 8513 4-22-93 7:03p ; req'd by kernel
VFLPY SYS 4896 4-22-93 6:49p ; req'd by kernel
VESA EXE 3824 3-12-93 6:43p ; req'd by kernel
VNPX SYS 2016 4-22-93 6:52p ; req'd by kernel
VCMOS SYS 848 4-22-93 6:37p ; req'd by kernel
VVGA SYS 52795 4-29-93 10:23p ; req'd by config.sys load
17 file(s) 263611 bytes used
Total files listed:
102 file(s) 3124370 bytes used
154767360 bytes free
config.sys:
PROTSHELL=C:\TSHELL.EXE
SET OS2_SHELL=C:\OS2\CMD.EXE
SET COMSPEC=C:\OS2\CMD.EXE
LIBPATH=.;C:\;C:\OS2\DLL;C:\OS2\MDOS;
SET PATH=C:\OS2;C:\OS2\SYSTEM;C:\OS2\MDOS;C:\BIN
SET DPATH=C:\OS2;C:\OS2\SYSTEM
SET PROMPT=[$P]
PAUSEONERROR=YES
BUFFERS=30
IOPL=YES
DISKCACHE=64,LW
MAXWAIT=3
MEMMAN=NOSWAP,COMMIT
THREADS=64
DEVINFO=KBD,US,C:\OS2\KEYBOARD.DCP
DEVINFO=SCR,EGA,C:\OS2\VTBL850.DCP
SET KEYS=ON
PROTECTONLY=NO
SHELL=C:\OS2\MDOS\COMMAND.COM C:\OS2\MDOS
DEVICE=C:\OS2\MDOS\VVGA.SYS
CODEPAGE=850
COUNTRY=001,C:\OS2\SYSTEM\COUNTRY.SYS
SWAPPATH=C:\OS2\SYSTEM 64 1024
BASEDEV=PRINT02.SYS
BASEDEV=IBM2FLPY.ADD
BASEDEV=IBM2ADSK.ADD
BASEDEV=OS2DASD.DMD
abios.sys:
000000.BIO
W0F0000.BIO
W050101.BIO
W050100.BIO
W050000.BIO
W060100.BIO
W020100.BIO
W020101.BIO
F80D01.BIO
F80D00.BIO